#ifndef BASE_CODEC_CODEC_H
#define BASE_CODEC_CODEC_H
#include <string>

#include "ICodec.h"

class Codec : public ICodec {
public:
    Codec() 
     : initStr_(),
       retStrDecodeContent1_(),
       retStrDecodeContent2_(),
       retStrEncode_()
    { }
    void decode();
    void encode(const std::string& fileName);
    void setInitialContent(const std::string& initialContent) { initStr_ = initialContent; }
    const std::string& getResultContentDecodeContent1() const { return retStrDecodeContent1_; }
    const std::string& getResultContentDecodeContent2() const { return retStrDecodeContent2_; }
    const std::string& getResultContentEncode() const { return retStrEncode_; }
    ~Codec() {}
private:
    static uint32_t getFileSize(const std::string &fileName);
    std::string initStr_;
    std::string retStrDecodeContent1_;
    std::string retStrDecodeContent2_;
    std::string retStrEncode_;
};

#endif